/*
 * @Author: 郑俊标
 * @Date: 2024-06-05 15:02:46
 * @LastEditors: 郑俊标
 * @LastEditTime: 2024-07-23 16:24:05
 * @Description: 路由文件
 */
import Vue from 'vue';
import Router from 'vue-router';
Vue.use(Router);

// 公共路由
export const constantRoutes = [
    {
        path: '/',
        redirect: '/login' // 从根路径重定向到 /login
      },
    {
        path: '/login',
        component: () => import('@/views/login'),
        hidden: true,
    },
    {
        path: '/404',
        component: () => import('@/views/error/404'),
        hidden: true,
    },
    // {
    //     path: '/layout',
    //     component: () => import('@/layout/components/Sidebar'),
    //     hidden: true,
    // },
    {
        path: '/layout',
        component: () => import('@/layout/components/Settings'),
        hidden: true,
    },
];

// 动态路由，基于用户权限动态去加载
// export const dynamicRoutes = [
// 	{
// 		path: '/system/user-auth',
// 		component: Layout,
// 		hidden: true,
// 		permissions: ['system:user:edit'],
// 		children: [
// 			{
// 				path: 'role/:userId(\\d+)',
// 				component: () => import('@/views/system/user/authRole'),
// 				name: 'AuthRole',
// 				meta: { title: '分配角色', activeMenu: '/system/user' },
// 			},
// 		],
// 	},
// 	{
// 		path: '/system/role-auth',
// 		component: Layout,
// 		hidden: true,
// 		permissions: ['system:role:edit'],
// 		children: [
// 			{
// 				path: 'user/:roleId(\\d+)',
// 				component: () => import('@/views/system/role/authUser'),
// 				name: 'AuthUser',
// 				meta: { title: '分配用户', activeMenu: '/system/role' },
// 			},
// 		],
// 	},
// 	{
// 		path: '/system/dict-data',
// 		component: Layout,
// 		hidden: true,
// 		permissions: ['system:dict:list'],
// 		children: [
// 			{
// 				path: 'index/:dictId(\\d+)',
// 				component: () => import('@/views/system/dict/data'),
// 				name: 'Data',
// 				meta: { title: '字典数据', activeMenu: '/system/dict' },
// 			},
// 		],
// 	},
// 	{
// 		path: '/monitor/job-log',
// 		component: Layout,
// 		hidden: true,
// 		permissions: ['monitor:job:list'],
// 		children: [
// 			{
// 				path: 'index/:jobId(\\d+)',
// 				component: () => import('@/views/monitor/job/log'),
// 				name: 'JobLog',
// 				meta: { title: '调度日志', activeMenu: '/monitor/job' },
// 			},
// 		],
// 	},
// 	{
// 		path: '/tool/gen-edit',
// 		component: Layout,
// 		hidden: true,
// 		permissions: ['tool:gen:edit'],
// 		children: [
// 			{
// 				path: 'index/:tableId(\\d+)',
// 				component: () => import('@/views/tool/gen/editTable'),
// 				name: 'GenEdit',
// 				meta: { title: '修改生成配置', activeMenu: '/tool/gen' },
// 			},
// 		],
// 	},
// ];

export const dynamicRoutes = [];

// 防止连续点击多次路由报错
let routerPush = Router.prototype.push;
let routerRelace = Router.prototype.replace;
// push
Router.prototype.push = function push(location) {
    return routerPush.call(this, location).catch((err) => err);
}
// replace
Router.prototype.replace = function replace(location) {
    return routerRelace.call(this, location).catch((err) => err);
}


export default new Router({
	mode: 'history', // 去掉url中的#
	scrollBehavior: () => ({ y: 0 }),
	routes: constantRoutes,
});